Skip to main content
Version: v2.10.0

CFT Parameter Reference

All parameters available in the Yeedu CloudFormation Template, grouped by section as they appear in the CloudFormation console.

info

Parameters marked Required have no default and must be filled in before launching the stack. All other parameters have defaults that suit most deployments.


Section A — VPC Configuration​

ParameterDefaultDescription
aVpcIdRequiredVPC ID where all Yeedu resources will be deployed.

Section B — Public Subnets​

Three public subnets are required — one per Availability Zone — for ALB multi-AZ placement. Subnet 1 also hosts the NAT Gateway.

ParameterDefaultDescription
bPublicSubnet1IdRequiredFirst public subnet. Hosts the NAT Gateway and one ALB node.
bPublicSubnet2IdRequiredSecond public subnet. Must be in a different AZ from subnet 1.
bPublicSubnet3IdRequiredThird public subnet. Must be in a different AZ from subnets 1 and 2.

Section C — Private Subnets​

ParameterDefaultDescription
cCreatePrivateSubnetstrueCreate new private subnets (true) or use existing ones (false).
cPrivateSubnet1CIDR172.31.128.0/25CIDR for the first private subnet (128 IPs). Must not overlap existing subnets.
cPrivateSubnet2CIDR172.31.128.128/25CIDR for the second private subnet (128 IPs). Must not overlap existing subnets.
cAvailabilityZone1RequiredAZ for the first private subnet (e.g., ap-south-1a).
cAvailabilityZone2RequiredAZ for the second private subnet (e.g., ap-south-1b). Must differ from AZ1.
cExistingPrivateSubnet1Id(blank)If cCreatePrivateSubnets = false, ID of your first existing private subnet.
cExistingPrivateSubnet2Id(blank)If cCreatePrivateSubnets = false, ID of your second existing private subnet.
caution

The default CIDRs (172.31.128.0/25 and 172.31.128.128/25) assume a 172.31.0.0/16 VPC. If your VPC uses a different range, update both CIDRs to avoid overlap.


Section D — EC2 Configuration​

ParameterDefaultDescription
dInstanceTypec6a.2xlargeEC2 instance type for the main Yeedu server. Minimum 8 vCPU / 16 GB RAM recommended.

Recommended instance types:

InstancevCPURAMUse Case
c6a.2xlarge816 GBDefault — dev / small production
c6a.4xlarge1632 GBMedium production workloads
c6a.8xlarge3264 GBLarge production workloads
m6a.4xlarge1664 GBMemory-intensive workloads

Section E — SSL / HTTPS​

ParameterDefaultDescription
eUseSSLtrueEnable HTTPS on the ALB using an ACM certificate.
eACMCertificateArn(blank)Full ARN of the ACM certificate. Required when eUseSSL = true.
eCustomDnsName(blank)Custom domain for Yeedu (e.g., app.yeedu.example.com). After deployment, create a CNAME pointing this domain to the ALB DNS name.

ALB listener ports based on eUseSSL:

ModeUIREST APIFunctions Proxy
eUseSSL = truehttps://<alb>:8012 → EC2 :8002https://<alb>:8080 → EC2 :8080https://<alb>:8081 → EC2 :8081
eUseSSL = falsehttp://<alb>:8002 → EC2 :8002http://<alb>:8080 → EC2 :8080http://<alb>:8081 → EC2 :8081
info

When eCustomDnsName is set and eUseSSL = true, Yeedu's internal hostnames are configured using the custom domain. If blank, the ALB's auto-generated DNS name is used.


Section F — RDS​

ParameterDefaultAllowed ValuesDescription
fCreateRDStruetrue, falseCreate a managed RDS PostgreSQL instance. Set to false if supplying your own external PostgreSQL.
fRDSEngineVersion15.10Any 15.xPostgreSQL engine version. Use the latest 15.x available in your region if 15.10 is unavailable.
fRDSHighAvailabilityfalsetrue, falseEnable Multi-AZ for RDS. Recommended for production.
fEnvironmentNameproddev, staging, prodEnvironment label used as a suffix in all resource names (e.g., yeedu-prod-ec2-sg).
tip

To find the latest PostgreSQL 15.x version available in your region:

aws rds describe-db-engine-versions \
--engine postgres \
--query "DBEngineVersions[?starts_with(EngineVersion,'15')].EngineVersion" \
--output table

RDS instance specs (created by CFT):

PropertyValue
Instance classdb.t3.micro
Storage20 GB gp3, encrypted
Backup retention7 days
Multi-AZControlled by fRDSHighAvailability
Publicly accessibleNo
Deletion policySnapshot (final snapshot on stack delete)
max_connections5000 (via parameter group)

Section G — S3 Bucket​

ParameterDefaultDescription
gCreateS3BuckettrueCreate a new S3 bucket for Yeedu data and artifacts. Set to false to use an existing bucket.
gExistingS3BucketName(blank)Name of an existing S3 bucket. Required when gCreateS3Bucket = false.

When gCreateS3Bucket = true, the CFT creates a bucket named <stack-name>-data with:

  • All public access blocked
  • Versioning enabled
  • Server-side encryption (AES256)
  • DeletionPolicy: Retain — bucket is not deleted when the stack is deleted

When gCreateS3Bucket = false, provide your existing bucket name in gExistingS3BucketName. The Yeedu Lambda and EC2 instance will read/write under the yeedu/ and yeedu_libs/ prefixes in that bucket.

caution

The existing bucket must be in the same region as the CloudFormation stack. The Lambda execution role and EC2 instance role are scoped to only the configured bucket — cross-region bucket access is not supported.


Section H — EC2 Machine​

ParameterDefaultDescription
hCreateEC2MachinetrueCreate a new EC2 instance and register it with ALB target groups. Set to false to skip EC2 creation.
hExistingEC2MachineID(blank)Existing EC2 instance ID to register in ALB target groups. Required when hCreateEC2Machine = false.
info

Set hCreateEC2Machine = false when:

  • Re-deploying infrastructure only — updating networking, SGs, or ALB config without reprovisioning the Yeedu server
  • Registering a pre-existing EC2 — the instance was created outside the CFT

When hCreateEC2Machine = false, the hExistingEC2MachineID is registered directly into all three ALB target groups (UI, REST API, Functions Proxy).


Section I — Yeedu Version & Software Pull​

ParameterDefaultDescription
iYeeduVersionv2.9.1Yeedu release version to deploy. Must exist in the yeedu-softwares S3 bucket under releases/<version>/.
iPullYeeduSoftwarestrueIf true, Lambda copies artifacts from S3 and EC2 loads + pushes Docker images to ECR on first boot. If false, both steps are skipped.

Decision guide for iPullYeeduSoftwares:

ScenarioRecommended Value
First-time deploymenttrue
Re-deployment, ECR images already populatedfalse
Version upgrade to a new iYeeduVersiontrue
Infrastructure-only change (SG, ALB update)false
caution

If you set iPullYeeduSoftwares = false but ECR repositories are empty or the S3 artifacts are missing, yeedu-core-services.sh start will fail because Docker images won't be found. Always ensure ECR is populated before disabling the software pull.